#include<stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>

/*
双亲表示法
*/
#define MAX_TREE_SIZE 100
typedef int ElemType;
typedef struct{
    ElemType data;
    int parent;
}PTNode;
typedef struct 
{
    PTNode nodes[MAX_TREE_SIZE];
    int n; // 结点数
}PTree;

/*
孩子表示法
*/
struct CTNode{
    int child;
    struct CTNode *next;
};
typedef struct{
    ElemType data;
    struct CTNode *firstChild;
} CTBox;
typedef struct{
    CTBox nodes[MAX_TREE_SIZE];
    int n, r; // 结点数和根的位置
}CTree;

/*
孩子兄弟表示法
*/
typedef struct CSNode
{
    ElemType data;
    struct CSNode *firstChild, *nextsibling;
}CSNode, *CSTree;